/********************************************************************************
 * Project Name		[JavaEE_Web]
 * File Name     	[ServletConfiguration.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package _notes.servlet;

/**
 * Servlet的配置
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class ServletConfiguration {

	public void xmlConfiguration() {
		/**
		 * <code>
		 * <context-param>												<!--配置全局的初始化参数, 使用ServletContext获得-->
		 *     <param-name>username</param-name>						<!--参数名-->
		 *     <param-value>root</param-value>							<!--参数值-->
		 * </context-param>
		 * <context-param>
		 *     <param-name>password</param-name>
		 *     <param-value>12345</param-value>
		 * </context-param>
		 * 
		 * <servlet>
		 *     <servlet-name>HelloServlet</servlet-name>				<!--Servlet注册名称-->
		 *     <servlet-class>servlet.helloServlet</servlet-class>		<!--Servlet全类名-->
		 *     <init-param>												<!--初始化参数, 使用ServletConfig获得-->
		 *         <param-name>username</param-name>					<!--参数名-->
		 *         <param-value>Sean.Yang</param-value>					<!--参数值-->
		 *     </init-param>
		 *     <init-param>
		 *         <param-name>password</param-name>
		 *         <param-value>123456</param-value>
		 *     </init-param>
		 *     <load-on-startup>1</load-on-startup>						<!-- Servlet被创建的时机-->
		 * </servlet>
		 * 
		 * <servlet-mapping>
		 *     <servlet-name>HelloServlet</servlet-name>				<!--和某个<servlet>节点的<servlet-name>一致-->
		 *     <url-pattern>/Hello</url-pattern>						<!--映射具体的访问路径-->
		 * </servlet-mapping>
		 * </code>
		 **/

		/**
		 * web.xml配置解析<br/>
		 * 
		 * 1. <load-on-startup><br/>
		 * Servlet被创建的时机, -1[默认, 第一次请求时创建]; 0或正整数[在当前Web应用被Serlvet容器加载时创建实例,
		 * 数字越小越早被创建]<br/>
		 * 
		 * 2. <url-pattern><br/>
		 * 映射具体的访问路径, /代表当前Web应用的根目录<br/>
		 * 通配符支持两种格式: *.扩展名[*.do] 或 以/开头以/*结尾[/action/*]<br/>
		 * 
		 * 3. 同一个Servlet可以被映射到多个URL上, 即多个<servlet-mapping>元素的
		 * <servlet-name>子元素的设置值可以是同一个Servlet的注册名称<br/>
		 * 
		 * 4. 缺省Servlet<br/>
		 * a. 如果某个Servlet的映射路径仅为/, 那么该Servlet为当前Web应用的缺省Servlet<br/>
		 * b. 凡在web.xml中找不到匹配的<servlet-mapping>元素的URL, 它们的访问请求都交给缺省的Servlet处理,
		 * 即缺省Servlet用于处理所有其他Servlet都不处理的访问请求<br/>
		 * c. 在TomcatHome/conf/web.xml文件中,
		 * 注册了一个名称为org.apache.catalina.servlets.DefaultServlet的缺省Servlet<br/>
		 */
	}

	public void annotationConfiguration() {
		/**
		 * <code>
		 * <pre>@WebServlet(
		 * 			name = "HelloServlet", 
		 * 			urlPatterns = "/hello", 
		 * 			initParams = {@WebInitParam(name = "username", value = "Sean.Yang"), @WebInitParam(name = "password", value = "123456") }, 
		 *			loadOnStartup = 1
		 *			description = "这是测试的Servlet")</pre>
		 * </code>
		 */
	}
}
